package team.se.tms.service;

import team.se.tms.annotation.SpecialCheck;
import team.se.tms.dto.Page;
import team.se.tms.dto.TaskDetail;
import team.se.tms.po.TaskInfo;

import java.util.List;

/**
 * 任务信息业务层接口,定义了任务信息业务层调用的方法
 *
 * @author winkyle
 * @date 2018/11/27
 */
public interface TaskInfoService {

    /**
     * 根据授课id获取任务详细信息
     *
     * @param teachCourseId 授课id
     * @param page 分页
     * @return 任务详细信息列表
     * @throws Exception 异常
     * @create on 2018/12/6 by winkyle
     */
    List<TaskDetail> listTaskDetails(@SpecialCheck("Pk")String teachCourseId, Page page) throws Exception;

    /**
     * 根据授课id获取任务详细信息
     *
     * @param teachCourseId 授课id
     * @return 任务详细信息列表
     * @throws Exception 异常
     * @create on 2018/12/10 by qingx
     */
    List<TaskDetail> listTaskDetails(@SpecialCheck("Pk")String teachCourseId) throws Exception;

    
    /**
     * 根据授课id获取任务信息
     *
     * @param teachCourseId 授课id
     * @param page 分页
     * @return 任务信息列表
     * @throws Exception 异常
     * @create on 2018/11/27 by winkyle
     */
    List<TaskInfo> listTaskInfos(@SpecialCheck("Pk")String teachCourseId, Page page) throws Exception;

    /**
     * 保存任务信息
     *
     * @param taskInfo 任务信息
     * @return 保存结果
     * @throws Exception 异常
     * @create on 2018/11/27 by winkyle
     */
    Boolean saveTaskInfo(TaskInfo taskInfo) throws Exception;

    /**
     * 修改任务信息
     *
     * @param taskInfo 任务信息
     * @return 修改结果
     * @throws Exception 异常
     * @create on 2018/11/27 by winkyle
     */
    Boolean modifyTaskInfo(TaskInfo taskInfo) throws Exception;
}
